<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>interator迭代器</title>
	</head>
	<body>
		<script type="text/javascript">
			//是一种接口机制，为不同数据结构·使用统一的循环机制
		    //使用数据结构的成员按照某种次序排列
			//对象不可使用for of
		  //原生数据类型具体iterator接口数据有： Array /string set map nodelist htmlcollection arguments
		     //interator
	         var arr = ["a","b","c"];
			 var str = "1234567";
			 //arr带调用系统的Symbol.iterator  会返回一个对象//Array Iterator {},对象中有一个next方法
			//next方法返回值value和done 
		     for(let value of arr)
			 {
				 console.log(value);
			 }
			 let obj = {
				 "name":"刘冬",
				 "age":22,
				 "salary":10000
			 }
			 obj[Symbol.iterator] = function()
			 {
				 let arr  = Object.values(obj);
				 let index = 0;
				  return {
					  next:function()
					  {
						  if(index == arr.length)
						  {
							  return {value:arr[index++],done:true}
						  }
						  else
						  {
							return {value:arr[index++],done:false}   
						  }
						  
					  }
				  }
			 }
			let ite = obj[Symbol.iterator]();
			console.log(ite.next());
			console.log(ite.next());
			console.log(ite.next());
			console.log(ite.next());
		</script>
	</bod>
</html>
